package com.example.q_kang.hhh.api;


import com.example.q_kang.hhh.login.bean.HeaderBean;
import com.sskj.base.api.HttpResponse;
import com.sskj.base.data.User;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.HEAD;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface ApiService {

    @FormUrlEncoded
    @POST("/Mobile/login/doLogin")
    Observable<HttpResponse<HeaderBean>> login(@Field("username") String username,
                                               @Field("password") String password);

//        @FormUrlEncoded
//        @POST("/Mobile/login/doLogin")
//        Observable<HttpResponse<User>> login(@Field("username") String username,
//                                             @Field("password") String password,
//                                             @Field("verify_code") String verify_code);

//    //买入卖出（做多做空）
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<String>> placeOrder(
//            @Field("action") String action,//addBilll
//            @Field("account") String account,
//            @Field("tradingType") String tradingType,//交易类型 0买 1卖
//            @Field("entrustCount") String entrustCount,//委手
//            @Field("price") String price,//买入价
//            @Field("stockCode") String stockCode,//股票代码
//            @Field("billType") String billType,//0市价 1限价
//            @Field("buyBillType") String buyBillType,//下单买卖类型 做空单-1 做多单1
//            @Field("stopProfitPrice") String stopProfitPrice,//止盈价 做多：大于现价  做空：小于现价
//            @Field("stopLossPrice") String stopLossPrice);//止损价 做多：小于现价（点差最小变动价） 做空：大于现价（点差最小变动价）
//

    @GET("/Mobile/Reg/sendSmsRegCode")
    Observable<HttpResponse<String>> getCode(@Query("mobile") String action);

    //忘记密码
    @FormUrlEncoded
    @POST("/Mobile/forgot/forgotByMobile")
    Observable<HttpResponse<String>> resetPassword(@Field("account") String account,
                                                   @Field("mobileCode") String mobileCode,
                                                   @Field("new_pass") String new_pass,
                                                   @Field("confirm_new_pass") String confirm_new_pass
    );

    //注册
    @FormUrlEncoded
    @POST("/Mobile/reg/index")
    Observable<HttpResponse<String>> register(@Field("mobile") String mobile,
                                              @Field("mobileCode") String mobileCode,
                                              @Field("password") String password,
                                              @Field("secpwd") String secpwd,
                                              @Field("regprotocol") int regprotocol);

    //设置个人资料
    @FormUrlEncoded
    @POST("/Mobile/User/editData")
    Observable<HttpResponse<String>> setUserData(
            @Header("token")String token,
            @Field("nickname") String nickname,
            @Field("username") String username,
                @Field("pd_note") String pd_note);

    //
//    //版本更新
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<AppVersionBean>> checkVersion(@Field("action") String action, @Field("appSys") String account);
//
//    //账户详情
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<AccountDetail>> accountDetail(@Field("action") String action, @Field("account") String account);
//
//
//    //当日委托
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<String>> todayEntrust(@Field("action") String action,//dealInfo
//                                                  @Field("account") String account,
//                                                  @Field("toDay") String code);//toDay
//
//    //当日成交 billStatus:(1:已接收 2:待成交 3:已取消 4:已成交 5：已作废)
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<String>> todayDeal(@Field("action") String action,//dealInfo
//                                               @Field("account") String account,
//                                               @Field("toDay") String toDay,//toDay
//                                               @Field("billStatus") String billStatus);
//
//    //历史委托
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<String>> historyEntrust(@Field("action") String action,//dealInfo
//                                                    @Field("account") String account,
//                                                    @Field("entrust1") String entrust1,
//                                                    @Field("entrust2") String entrust2);
//
//    //历史成交 billStatus:(1:已接收 2:待成交 3:已取消 4:已成交 5：已作废)
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<String>> historyDeal(@Field("action") String action,//dealInfo
//                                                 @Field("account") String account,
//                                                 @Field("dealDate1") String dealDate1,
//                                                 @Field("dealDate2") String dealDate2,
//                                                 @Field("billStatus") String billStatus);
//
//    //行情列表
//    @GET("interface?app=app&action=goodsInfoGet")
//    Observable<HttpResponse<List<MarketData>>> marketList();
//
//    //初级认证
//    @FormUrlEncoded
//    @POST("interface?app=app")
//    Observable<HttpResponse<String>> verify1(@Field("action") String action,//openAccount
//                                             @Field("account") String account,
//                                             @Field("username") String username,
//                                             @Field("idCardNo") String idCardNo,
//                                             @Field("cardType") String cardType,
//                                             @Field("cardNo") String bankNumber);
    //上传账户身份证号
    @POST("/Zfuwl/Api/imageUp")
    Observable<HttpResponse<String>> uploadImg(@Body RequestBody multipartBody);

}
